This specification relates to routing data using transport based on a stateless or connectionless protocol, e.g., a User Datagram Protocol (UDP) transport.
Generally, web services use Transmission Control Protocol (TCP) to communicate data using one or more networks. TCP is a communications protocol for a transport layer in an Open Systems Interconnection (OSI) communication model. The transport layer receives service requests from an application layer and forwards service requests with appended header information to a network layer.
TCP facilitates the transmission of large amounts of data by dividing the data into packets prior to transmission. The packets are transmitted with sequencing data and are reassembled upon receipt at a destination. TCP also provides congestion throttling and reliable data transfer through retransmission of lost packets. However, the reliability achieved with TCP transport results in latency and network loading.
UDP is another protocol for the transport layer in the OSI model. UDP is typically used with applications (e.g., real-time online games, streaming media, and Voice over IP) which are time-sensitive and require small amounts of data to be transmitted at a time. For UDP transport, packets or datagrams are transmitted without sequencing data. UDP is a connectionless protocol: data are transmitted between the client and the server without establishing a connection prior to transmission. Because there is no error checking for the packets, UDP transmitted packets can be lost or delivered out of order. However, UDP transmissions require lower network overhead and have reduced latency relative to TCP.
Typically, search queries and responses are sent over TCP. This may involve multiple round trips to Domain Name System (DNS) and Hypertext Transfer Protocol (HTTP) servers, and the search query is prone to timeouts caused by high round-trip time (RTT) or packet loss.